x86/time: fix scale_delta() inline assembly
authorJan Beulich <jbeulich@suse.com>
Mon, 26 Nov 2012 16:20:39 +0000 (17:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 26 Nov 2012 16:20:39 +0000 (17:20 +0100)
commit84628ee52a427b0f0fe50502eb8ffd0eedad0f03
treea581b07d3ac14b0f96b07df89b010af4d7e56ee5
parent4369b2cd6fbeb34c537a68df26debb0ab36026f9
x86/time: fix scale_delta() inline assembly

The way it was coded, it clobbered %rdx without telling the compiler.
This generally didn't cause any problems except when there are two back
to back invocations (as in plt_overflow()), as in that case the
compiler may validly assume that it can re-use for the second instance
the value loaded into %rdx before the first one.

Once at it, also properly relax the second operand of "mul" (there's no
need for it to be in %rdx, or a register at all), and switch away from
using explicit register names in the instruction operands.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/arch/x86/time.c